package co.edu.uniandes.truequeAndes.poblador;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;

public class Poblador 
{

	public Date generarFechas ()
	{
		Random r=new Random();
		Calendar cdr = Calendar.getInstance();
		cdr.set(Calendar.YEAR, 1990);
		cdr.set(Calendar.MONTH, 1);
		cdr.set(Calendar.DAY_OF_MONTH, 1);
		long val1=cdr.getTimeInMillis();



		long val2=System.currentTimeMillis(); 

		long randomTS=(long)(r.nextDouble()*(val2-val1))+val1;
		Date d=new Date(randomTS);
		return d;
	
		
	
	}


	public void generarClientes ()
	{

		try {

			File archivo= new File(".."+File.pathSeparator+"data"+File.pathSeparator+"csv"+File.pathSeparator+"clientes.csv");
			System.out.println(archivo.getAbsolutePath());
			FileWriter escritor= new FileWriter(archivo);
			PrintWriter l= new PrintWriter(escritor);
			String[] clientesNombre = new String [15];
			String[] clientesApellidos = new String [15];
			String[] clientesEmail = new String [5];
		//	String[] clientesNickName = new String [15];
			String[] clientesPais = new String [15];
			String clientesPassword ="elcliente123";
			String[] clientesGenero = new String [2];
		//	String[] clientesFecha = new String [15];

			//Inicializacion del genero
			
			clientesGenero[0]="h";
			clientesGenero[1]= "m";

			//Inicializacion de  nombres de  clientes
			clientesNombre[0]="Claudia";
			clientesNombre[1]="Laura";
			clientesNombre[2]="Daniela";
			clientesNombre[3]="Marcela";
			clientesNombre[4]="Daniel";
			clientesNombre[5]="Jose";
			clientesNombre[6]="Sebastian";
			clientesNombre[7]="Francois";
			clientesNombre[8]="Juan";
			clientesNombre[9]="Adriana";
			clientesNombre[10]="Carlos";
			clientesNombre[11]="Paula";
			clientesNombre[12]="Angela";
			clientesNombre[13]="Andres";
			clientesNombre[14]="Ximena";


			//Inicializacion de apellidos de clientes

			clientesApellidos[0]="Cardenas";
			clientesApellidos[1]="Jimenez";
			clientesApellidos[2]="Ramos";
			clientesApellidos[3]="Hurtado";
			clientesApellidos[4]="Leon";
			clientesApellidos[5]="Pradilla";
			clientesApellidos[6]="Bernal";
			clientesApellidos[7]="Pirajan";
			clientesApellidos[8]="Morales";
			clientesApellidos[9]="Lopez";
			clientesApellidos[10]="Jeanneret";
			clientesApellidos[11]="Calderon";
			clientesApellidos[12]="Meneses";
			clientesApellidos[13]="Becerra";
			clientesApellidos[14]="Moreno";

			//se crean los dominios de correo
			
			clientesEmail[0]="@hotmail.com";
			clientesEmail[1]="@msn.com";
			clientesEmail[2]="@gmail.com";
			clientesEmail[3]="@uniandes.edu.co";
			clientesEmail[4]="@yahoo.com";
			
			//se crean los paises
			
			clientesPais[0]="Ecuador";
			clientesPais[1]="Rusia";
			clientesPais[2]="Finlandia";
			clientesPais[3]="Dinamarca";
			clientesPais[4]="Bolivia";
			clientesPais[5]="Costa Rica";
			clientesPais[6]="Comoros";
			clientesPais[7]="Zimbabwe";
			clientesPais[8]="Costa de Marfil";
			clientesPais[9]="Portugal";
			clientesPais[10]="Argentina";
			clientesPais[11]="Chile";
			clientesPais[12]="Venezuela";
			clientesPais[13]="Republica Dominicana";
			clientesPais[14]="Paraguay";
			
			l.println(" \"email\", \"nickname\", \"pais\", \"nombre\", \"password\", \"genero\", \"fecha_registro\", \"fecha_nacimiento\"");
			
			
			for (int i = 0; i <20000 ; i++) 
			{
				String nombre= clientesNombre[(int)(Math.random()*14)];
				String apellido= clientesApellidos[(int)(Math.random()*14)];
				String nick= nombre.substring((int)(Math.random()*(nombre.length()-1)))+apellido.substring((int)(Math.random()*(apellido.length()-1)))+((int)(Math.random()*1000));
				String correo= nick+clientesEmail[(int)(Math.random()*4)];
				String pais= clientesPais[(int)(Math.random()*14)];
				String sex= clientesGenero[(int)(Math.random())];
				Date ini= generarFechas();
				
				String fechaNacimiento= ini.toString();
				fechaNacimiento= fechaNacimiento.split(" ")[2]+"/"+fechaNacimiento.split(" ")[1]+"/"+ fechaNacimiento.split(" ")[5];
				Date fini= generarFechas();
				String fechaRegistro= fini.toString();
				fechaRegistro= fechaRegistro.split(" ")[2]+"/"+fechaRegistro.split(" ")[1]+"/"+ fechaRegistro.split(" ")[5];
				if (fini.getTime()>=ini.getTime())
				{
					l.println(correo+","+nick+","+pais+","+nombre+","+clientesPassword+","+ sex+","+fini+","+ini);

				}
		
			
				
				
			}
			l.flush();
			escritor.close();		
			
			
		} catch (IOException e) 
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}





	/**
	 * @param args
	 */

	public static void main(String[] args) 
	{
		Poblador p= new Poblador();
		p.generarClientes();
		


	}

}
